

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="Description" content="scikit-learn: machine learning in Python">

  
  <title>Version 0.14 &mdash; scikit-learn 0.22 documentation</title>
  
  <link rel="canonical" href="http://scikit-learn.org/stable/whats_new/v0.14.html" />

  
  <link rel="shortcut icon" href="../_static/favicon.ico"/>
  

  <link rel="stylesheet" href="../_static/css/vendor/bootstrap.min.css" type="text/css" />
  <link rel="stylesheet" href="../_static/gallery.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script> 
</head>
<body>
<nav id="navbar" class="sk-docs-navbar navbar navbar-expand-md navbar-light bg-light py-0">
  <div class="container-fluid sk-docs-container px-0">
      <a class="navbar-brand py-0" href="../index.html">
        <img
          class="sk-brand-img"
          src="../_static/scikit-learn-logo-small.png"
          alt="logo"/>
      </a>
    <button
      id="sk-navbar-toggler"
      class="navbar-toggler"
      type="button"
      data-toggle="collapse"
      data-target="#navbarSupportedContent"
      aria-controls="navbarSupportedContent"
      aria-expanded="false"
      aria-label="Toggle navigation"
    >
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="sk-navbar-collapse collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../install.html">Install</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../user_guide.html">User Guide</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../modules/classes.html">API</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../auto_examples/index.html">Examples</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../getting_started.html">Getting Started</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../tutorial/index.html">Tutorial</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../glossary.html">Glossary</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../developers/index.html">Development</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../faq.html">FAQ</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../related_projects.html">Related packages</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../roadmap.html">Roadmap</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../about.html">About us</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://github.com/scikit-learn/scikit-learn">GitHub</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://scikit-learn.org/dev/versions.html">Other Versions</a>
        </li>
        <li class="nav-item dropdown nav-more-item-dropdown">
          <a class="sk-nav-link nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">More</a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
              <a class="sk-nav-dropdown-item dropdown-item" href="../getting_started.html">Getting Started</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../tutorial/index.html">Tutorial</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../glossary.html">Glossary</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../developers/index.html">Development</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../faq.html">FAQ</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../related_projects.html">Related packages</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../roadmap.html">Roadmap</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../about.html">About us</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="https://github.com/scikit-learn/scikit-learn">GitHub</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="https://scikit-learn.org/dev/versions.html">Other Versions</a>
          </div>
        </li>
      </ul>
      <div id="searchbox" role="search">
          <div class="searchformwrapper">
          <form class="search" action="../search.html" method="get">
            <input class="sk-search-text-input" type="text" name="q" aria-labelledby="searchlabel" />
            <input class="sk-search-text-btn" type="submit" value="Go" />
          </form>
          </div>
      </div>
    </div>
  </div>
</nav>
<div class="d-flex" id="sk-doc-wrapper">
    <input type="checkbox" name="sk-toggle-checkbox" id="sk-toggle-checkbox">
    <label id="sk-sidemenu-toggle" class="sk-btn-toggle-toc btn sk-btn-primary" for="sk-toggle-checkbox">Toggle Menu</label>
    <div id="sk-sidebar-wrapper" class="border-right">
      <div class="sk-sidebar-toc-wrapper">
        <div class="sk-sidebar-toc-logo">
          <a href="../index.html">
            <img
              class="sk-brand-img"
              src="../_static/scikit-learn-logo-small.png"
              alt="logo"/>
          </a>
        </div>
        <div class="btn-group w-100 mb-2" role="group" aria-label="rellinks">
            <a href="v0.15.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Version 0.15.2">Prev</a><a href="../whats_new.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Release History">Up</a>
            <a href="v0.13.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Version 0.13.1">Next</a>
        </div>
        <div class="alert alert-danger p-1 mb-2" role="alert">
          <p class="text-center mb-0">
          <strong>scikit-learn 0.22</strong><br/>
          <a href="http://scikit-learn.org/dev/versions.html">Other versions</a>
          </p>
        </div>
        <div class="alert alert-warning p-1 mb-2" role="alert">
          <p class="text-center mb-0">
            Please <a class="font-weight-bold" href="../about.html#citing-scikit-learn"><string>cite us</string></a> if you use the software.
          </p>
        </div>
          <div class="sk-sidebar-toc">
            <ul>
<li><a class="reference internal" href="#">Version 0.14</a><ul>
<li><a class="reference internal" href="#changelog">Changelog</a></li>
<li><a class="reference internal" href="#api-changes-summary">API changes summary</a></li>
<li><a class="reference internal" href="#people">People</a></li>
</ul>
</li>
</ul>

          </div>
      </div>
    </div>
    <div id="sk-page-content-wrapper">
      <div class="sk-page-content container-fluid body px-md-3" role="main">
        
  <div class="section" id="version-0-14">
<span id="changes-0-14"></span><h1>Version 0.14<a class="headerlink" href="#version-0-14" title="Permalink to this headline">¶</a></h1>
<p><strong>August 7, 2013</strong></p>
<div class="section" id="changelog">
<h2>Changelog<a class="headerlink" href="#changelog" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p>Missing values with sparse and dense matrices can be imputed with the
transformer <code class="xref py py-class docutils literal notranslate"><span class="pre">preprocessing.Imputer</span></code> by <a class="reference external" href="https://github.com/NicolasTr">Nicolas Trésegnie</a>.</p></li>
<li><p>The core implementation of decisions trees has been rewritten from
scratch, allowing for faster tree induction and lower memory
consumption in all tree-based estimators. By <a class="reference external" href="http://www.montefiore.ulg.ac.be/~glouppe/">Gilles Louppe</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.ensemble.AdaBoostClassifier.html#sklearn.ensemble.AdaBoostClassifier" title="sklearn.ensemble.AdaBoostClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.AdaBoostClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.ensemble.AdaBoostRegressor.html#sklearn.ensemble.AdaBoostRegressor" title="sklearn.ensemble.AdaBoostRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.AdaBoostRegressor</span></code></a>, by <a class="reference external" href="https://github.com/ndawe">Noel Dawe</a>  and
<a class="reference external" href="http://www.montefiore.ulg.ac.be/~glouppe/">Gilles Louppe</a>. See the <a class="reference internal" href="../modules/ensemble.html#adaboost"><span class="std std-ref">AdaBoost</span></a> section of the user
guide for details and examples.</p></li>
<li><p>Added <code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.RandomizedSearchCV</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.ParameterSampler</span></code> for randomized hyperparameter
optimization. By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/biclustering.html#biclustering"><span class="std std-ref">biclustering</span></a> algorithms
(<code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.cluster.bicluster.SpectralCoclustering</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.cluster.bicluster.SpectralBiclustering</span></code>), data
generation methods (<a class="reference internal" href="../modules/generated/sklearn.datasets.make_biclusters.html#sklearn.datasets.make_biclusters" title="sklearn.datasets.make_biclusters"><code class="xref py py-func docutils literal notranslate"><span class="pre">sklearn.datasets.make_biclusters</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.datasets.make_checkerboard.html#sklearn.datasets.make_checkerboard" title="sklearn.datasets.make_checkerboard"><code class="xref py py-func docutils literal notranslate"><span class="pre">sklearn.datasets.make_checkerboard</span></code></a>), and scoring metrics
(<a class="reference internal" href="../modules/generated/sklearn.metrics.consensus_score.html#sklearn.metrics.consensus_score" title="sklearn.metrics.consensus_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">sklearn.metrics.consensus_score</span></code></a>). By <a class="reference external" href="http://www.kemaleren.com">Kemal Eren</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/neural_networks_unsupervised.html#rbm"><span class="std std-ref">Restricted Boltzmann Machines</span></a>
(<a class="reference internal" href="../modules/generated/sklearn.neural_network.BernoulliRBM.html#sklearn.neural_network.BernoulliRBM" title="sklearn.neural_network.BernoulliRBM"><code class="xref py py-class docutils literal notranslate"><span class="pre">neural_network.BernoulliRBM</span></code></a>). By <a class="reference external" href="https://ynd.github.io/">Yann Dauphin</a>.</p></li>
<li><p>Python 3 support by <a class="reference external" href="https://github.com/justinvf">Justin Vincent</a>, <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>,
<a class="reference external" href="https://github.com/smoitra87">Subhodeep Moitra</a> and <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>. All tests now pass under
Python 3.3.</p></li>
<li><p>Ability to pass one penalty (alpha value) per target in
<a class="reference internal" href="../modules/generated/sklearn.linear_model.Ridge.html#sklearn.linear_model.Ridge" title="sklearn.linear_model.Ridge"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.Ridge</span></code></a>, by &#64;eickenberg and <a class="reference external" href="http://www.mblondel.org">Mathieu Blondel</a>.</p></li>
<li><p>Fixed <code class="xref py py-mod docutils literal notranslate"><span class="pre">sklearn.linear_model.stochastic_gradient.py</span></code> L2 regularization
issue (minor practical significance).
By <a class="reference external" href="https://github.com/norbert">Norbert Crombach</a> and <a class="reference external" href="http://www.mblondel.org">Mathieu Blondel</a> .</p></li>
<li><p>Added an interactive version of <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>’s
<a class="reference external" href="https://peekaboo-vision.blogspot.de/2013/01/machine-learning-cheat-sheet-for-scikit.html">Machine Learning Cheat Sheet (for scikit-learn)</a>
to the documentation. See <a class="reference internal" href="../tutorial/machine_learning_map/index.html#ml-map"><span class="std std-ref">Choosing the right estimator</span></a>.
By <a class="reference external" href="https://github.com/jaquesgrobler">Jaques Grobler</a>.</p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.GridSearchCV</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">cross_validation.cross_val_score</span></code> now support the use of advanced
scoring function such as area under the ROC curve and f-beta scores.
See <a class="reference internal" href="../modules/model_evaluation.html#scoring-parameter"><span class="std std-ref">The scoring parameter: defining model evaluation rules</span></a> for details. By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>
and <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.
Passing a function from <a class="reference internal" href="../modules/classes.html#module-sklearn.metrics" title="sklearn.metrics"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sklearn.metrics</span></code></a> as <code class="docutils literal notranslate"><span class="pre">score_func</span></code> is
deprecated.</p></li>
<li><p>Multi-label classification output is now supported by
<a class="reference internal" href="../modules/generated/sklearn.metrics.accuracy_score.html#sklearn.metrics.accuracy_score" title="sklearn.metrics.accuracy_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.accuracy_score</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.metrics.zero_one_loss.html#sklearn.metrics.zero_one_loss" title="sklearn.metrics.zero_one_loss"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.zero_one_loss</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.f1_score.html#sklearn.metrics.f1_score" title="sklearn.metrics.f1_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.f1_score</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.metrics.fbeta_score.html#sklearn.metrics.fbeta_score" title="sklearn.metrics.fbeta_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.fbeta_score</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.classification_report.html#sklearn.metrics.classification_report" title="sklearn.metrics.classification_report"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.classification_report</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.precision_score.html#sklearn.metrics.precision_score" title="sklearn.metrics.precision_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.precision_score</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.metrics.recall_score.html#sklearn.metrics.recall_score" title="sklearn.metrics.recall_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.recall_score</span></code></a>
by <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Two new metrics <a class="reference internal" href="../modules/generated/sklearn.metrics.hamming_loss.html#sklearn.metrics.hamming_loss" title="sklearn.metrics.hamming_loss"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.hamming_loss</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.metrics.jaccard_similarity_score.html#sklearn.metrics.jaccard_similarity_score" title="sklearn.metrics.jaccard_similarity_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.jaccard_similarity_score</span></code></a>
are added with multi-label support by <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Speed and memory usage improvements in
<a class="reference internal" href="../modules/generated/sklearn.feature_extraction.text.CountVectorizer.html#sklearn.feature_extraction.text.CountVectorizer" title="sklearn.feature_extraction.text.CountVectorizer"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_extraction.text.CountVectorizer</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html#sklearn.feature_extraction.text.TfidfVectorizer" title="sklearn.feature_extraction.text.TfidfVectorizer"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_extraction.text.TfidfVectorizer</span></code></a>,
by Jochen Wersdörfer and Roman Sinayev.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">min_df</span></code> parameter in
<a class="reference internal" href="../modules/generated/sklearn.feature_extraction.text.CountVectorizer.html#sklearn.feature_extraction.text.CountVectorizer" title="sklearn.feature_extraction.text.CountVectorizer"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_extraction.text.CountVectorizer</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html#sklearn.feature_extraction.text.TfidfVectorizer" title="sklearn.feature_extraction.text.TfidfVectorizer"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_extraction.text.TfidfVectorizer</span></code></a>, which used to be 2,
has been reset to 1 to avoid unpleasant surprises (empty vocabularies)
for novice users who try it out on tiny document collections.
A value of at least 2 is still recommended for practical use.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.svm.LinearSVC.html#sklearn.svm.LinearSVC" title="sklearn.svm.LinearSVC"><code class="xref py py-class docutils literal notranslate"><span class="pre">svm.LinearSVC</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier" title="sklearn.linear_model.SGDClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDRegressor.html#sklearn.linear_model.SGDRegressor" title="sklearn.linear_model.SGDRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDRegressor</span></code></a> now have a <code class="docutils literal notranslate"><span class="pre">sparsify</span></code> method that
converts their <code class="docutils literal notranslate"><span class="pre">coef_</span></code> into a sparse matrix, meaning stored models
trained using these estimators can be made much more compact.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier" title="sklearn.linear_model.SGDClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDClassifier</span></code></a> now produces multiclass probability
estimates when trained under log loss or modified Huber loss.</p></li>
<li><p>Hyperlinks to documentation in example code on the website by
<a class="reference external" href="https://github.com/mluessi">Martin Luessi</a>.</p></li>
<li><p>Fixed bug in <a class="reference internal" href="../modules/generated/sklearn.preprocessing.MinMaxScaler.html#sklearn.preprocessing.MinMaxScaler" title="sklearn.preprocessing.MinMaxScaler"><code class="xref py py-class docutils literal notranslate"><span class="pre">preprocessing.MinMaxScaler</span></code></a> causing incorrect scaling
of the features for non-default <code class="docutils literal notranslate"><span class="pre">feature_range</span></code> settings. By <a class="reference external" href="https://amueller.github.io/">Andreas
Müller</a>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">max_features</span></code> in <a class="reference internal" href="../modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier" title="sklearn.tree.DecisionTreeClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">tree.DecisionTreeClassifier</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.tree.DecisionTreeRegressor.html#sklearn.tree.DecisionTreeRegressor" title="sklearn.tree.DecisionTreeRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">tree.DecisionTreeRegressor</span></code></a> and all derived ensemble estimators
now supports percentage values. By <a class="reference external" href="http://www.montefiore.ulg.ac.be/~glouppe/">Gilles Louppe</a>.</p></li>
<li><p>Performance improvements in <a class="reference internal" href="../modules/generated/sklearn.isotonic.IsotonicRegression.html#sklearn.isotonic.IsotonicRegression" title="sklearn.isotonic.IsotonicRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">isotonic.IsotonicRegression</span></code></a> by
<a class="reference external" href="https://github.com/nellev">Nelle Varoquaux</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.metrics.accuracy_score.html#sklearn.metrics.accuracy_score" title="sklearn.metrics.accuracy_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.accuracy_score</span></code></a> has an option normalize to return
the fraction or the number of correctly classified sample
by <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.metrics.log_loss.html#sklearn.metrics.log_loss" title="sklearn.metrics.log_loss"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.log_loss</span></code></a> that computes log loss, aka cross-entropy
loss. By Jochen Wersdörfer and <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.</p></li>
<li><p>A bug that caused <a class="reference internal" href="../modules/generated/sklearn.ensemble.AdaBoostClassifier.html#sklearn.ensemble.AdaBoostClassifier" title="sklearn.ensemble.AdaBoostClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.AdaBoostClassifier</span></code></a>’s to output
incorrect probabilities has been fixed.</p></li>
<li><p>Feature selectors now share a mixin providing consistent <code class="docutils literal notranslate"><span class="pre">transform</span></code>,
<code class="docutils literal notranslate"><span class="pre">inverse_transform</span></code> and <code class="docutils literal notranslate"><span class="pre">get_support</span></code> methods. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>A fitted <code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.GridSearchCV</span></code> or
<code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.RandomizedSearchCV</span></code> can now generally be pickled.
By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Refactored and vectorized implementation of <a class="reference internal" href="../modules/generated/sklearn.metrics.roc_curve.html#sklearn.metrics.roc_curve" title="sklearn.metrics.roc_curve"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.roc_curve</span></code></a>
and <a class="reference internal" href="../modules/generated/sklearn.metrics.precision_recall_curve.html#sklearn.metrics.precision_recall_curve" title="sklearn.metrics.precision_recall_curve"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.precision_recall_curve</span></code></a>. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>The new estimator <a class="reference internal" href="../modules/generated/sklearn.decomposition.TruncatedSVD.html#sklearn.decomposition.TruncatedSVD" title="sklearn.decomposition.TruncatedSVD"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.decomposition.TruncatedSVD</span></code></a>
performs dimensionality reduction using SVD on sparse matrices,
and can be used for latent semantic analysis (LSA).
By <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.</p></li>
<li><p>Added self-contained example of out-of-core learning on text data
<a class="reference internal" href="../auto_examples/applications/plot_out_of_core_classification.html#sphx-glr-auto-examples-applications-plot-out-of-core-classification-py"><span class="std std-ref">Out-of-core classification of text documents</span></a>.
By <a class="reference external" href="https://github.com/oddskool">Eustache Diemert</a>.</p></li>
<li><p>The default number of components for
<code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.decomposition.RandomizedPCA</span></code> is now correctly documented
to be <code class="docutils literal notranslate"><span class="pre">n_features</span></code>. This was the default behavior, so programs using it
will continue to work as they did.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans" title="sklearn.cluster.KMeans"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.cluster.KMeans</span></code></a> now fits several orders of magnitude
faster on sparse data (the speedup depends on the sparsity). By
<a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.</p></li>
<li><p>Reduce memory footprint of FastICA by <a class="reference external" href="http://denis-engemann.de">Denis Engemann</a> and
<a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>.</p></li>
<li><p>Verbose output in <code class="xref py py-mod docutils literal notranslate"><span class="pre">sklearn.ensemble.gradient_boosting</span></code> now uses
a column format and prints progress in decreasing frequency.
It also shows the remaining time. By <a class="reference external" href="https://sites.google.com/site/peterprettenhofer/">Peter Prettenhofer</a>.</p></li>
<li><p><code class="xref py py-mod docutils literal notranslate"><span class="pre">sklearn.ensemble.gradient_boosting</span></code> provides out-of-bag improvement
<code class="xref py py-attr docutils literal notranslate"><span class="pre">oob_improvement_</span></code>
rather than the OOB score for model selection. An example that shows
how to use OOB estimates to select the number of trees was added.
By <a class="reference external" href="https://sites.google.com/site/peterprettenhofer/">Peter Prettenhofer</a>.</p></li>
<li><p>Most metrics now support string labels for multiclass classification
by <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a> and <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.</p></li>
<li><p>New OrthogonalMatchingPursuitCV class by <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>
and <a class="reference external" href="https://vene.ro/">Vlad Niculae</a>.</p></li>
<li><p>Fixed a bug in <code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.covariance.GraphLassoCV</span></code>: the
‘alphas’ parameter now works as expected when given a list of
values. By Philippe Gervais.</p></li>
<li><p>Fixed an important bug in <code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.covariance.GraphLassoCV</span></code>
that prevented all folds provided by a CV object to be used (only
the first 3 were used). When providing a CV object, execution
time may thus increase significantly compared to the previous
version (bug results are correct now). By Philippe Gervais.</p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.cross_val_score</span></code> and the <code class="xref py py-mod docutils literal notranslate"><span class="pre">grid_search</span></code>
module is now tested with multi-output data by <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.datasets.make_multilabel_classification.html#sklearn.datasets.make_multilabel_classification" title="sklearn.datasets.make_multilabel_classification"><code class="xref py py-func docutils literal notranslate"><span class="pre">datasets.make_multilabel_classification</span></code></a> can now return
the output in label indicator multilabel format  by <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>K-nearest neighbors, <a class="reference internal" href="../modules/generated/sklearn.neighbors.KNeighborsRegressor.html#sklearn.neighbors.KNeighborsRegressor" title="sklearn.neighbors.KNeighborsRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.KNeighborsRegressor</span></code></a>
and <a class="reference internal" href="../modules/generated/sklearn.neighbors.RadiusNeighborsRegressor.html#sklearn.neighbors.RadiusNeighborsRegressor" title="sklearn.neighbors.RadiusNeighborsRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.RadiusNeighborsRegressor</span></code></a>,
and radius neighbors, <a class="reference internal" href="../modules/generated/sklearn.neighbors.RadiusNeighborsRegressor.html#sklearn.neighbors.RadiusNeighborsRegressor" title="sklearn.neighbors.RadiusNeighborsRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.RadiusNeighborsRegressor</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.neighbors.RadiusNeighborsClassifier.html#sklearn.neighbors.RadiusNeighborsClassifier" title="sklearn.neighbors.RadiusNeighborsClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.RadiusNeighborsClassifier</span></code></a> support multioutput data
by <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Random state in LibSVM-based estimators (<a class="reference internal" href="../modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC" title="sklearn.svm.SVC"><code class="xref py py-class docutils literal notranslate"><span class="pre">svm.SVC</span></code></a>, <code class="xref py py-class docutils literal notranslate"><span class="pre">NuSVC</span></code>,
<code class="xref py py-class docutils literal notranslate"><span class="pre">OneClassSVM</span></code>, <a class="reference internal" href="../modules/generated/sklearn.svm.SVR.html#sklearn.svm.SVR" title="sklearn.svm.SVR"><code class="xref py py-class docutils literal notranslate"><span class="pre">svm.SVR</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.svm.NuSVR.html#sklearn.svm.NuSVR" title="sklearn.svm.NuSVR"><code class="xref py py-class docutils literal notranslate"><span class="pre">svm.NuSVR</span></code></a>) can now be
controlled.  This is useful to ensure consistency in the probability
estimates for the classifiers trained with <code class="docutils literal notranslate"><span class="pre">probability=True</span></code>. By
<a class="reference external" href="https://vene.ro/">Vlad Niculae</a>.</p></li>
<li><p>Out-of-core learning support for discrete naive Bayes classifiers
<a class="reference internal" href="../modules/generated/sklearn.naive_bayes.MultinomialNB.html#sklearn.naive_bayes.MultinomialNB" title="sklearn.naive_bayes.MultinomialNB"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.naive_bayes.MultinomialNB</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.naive_bayes.BernoulliNB.html#sklearn.naive_bayes.BernoulliNB" title="sklearn.naive_bayes.BernoulliNB"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.naive_bayes.BernoulliNB</span></code></a> by adding the <code class="docutils literal notranslate"><span class="pre">partial_fit</span></code>
method by <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>.</p></li>
<li><p>New website design and navigation by <a class="reference external" href="http://www.montefiore.ulg.ac.be/~glouppe/">Gilles Louppe</a>, <a class="reference external" href="https://github.com/nellev">Nelle Varoquaux</a>,
Vincent Michel and <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Improved documentation on <a class="reference internal" href="../modules/multiclass.html#multiclass"><span class="std std-ref">multi-class, multi-label and multi-output
classification</span></a> by <a class="reference external" href="https://team.inria.fr/parietal/schwarty/">Yannick Schwartz</a> and <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Better input and error handling in the <code class="xref py py-mod docutils literal notranslate"><span class="pre">metrics</span></code> module by
<a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a> and <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Speed optimization of the <code class="xref py py-mod docutils literal notranslate"><span class="pre">hmm</span></code> module by <a class="reference external" href="https://github.com/kmike">Mikhail Korobov</a></p></li>
<li><p>Significant speed improvements for <a class="reference internal" href="../modules/generated/sklearn.cluster.DBSCAN.html#sklearn.cluster.DBSCAN" title="sklearn.cluster.DBSCAN"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.cluster.DBSCAN</span></code></a>
by <a class="reference external" href="https://github.com/cleverless">cleverless</a></p></li>
</ul>
</div>
<div class="section" id="api-changes-summary">
<h2>API changes summary<a class="headerlink" href="#api-changes-summary" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p>The <code class="xref py py-func docutils literal notranslate"><span class="pre">auc_score</span></code> was renamed <code class="xref py py-func docutils literal notranslate"><span class="pre">roc_auc_score</span></code>.</p></li>
<li><p>Testing scikit-learn with <code class="docutils literal notranslate"><span class="pre">sklearn.test()</span></code> is deprecated. Use
<code class="docutils literal notranslate"><span class="pre">nosetests</span> <span class="pre">sklearn</span></code> from the command line.</p></li>
<li><p>Feature importances in <a class="reference internal" href="../modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier" title="sklearn.tree.DecisionTreeClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">tree.DecisionTreeClassifier</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.tree.DecisionTreeRegressor.html#sklearn.tree.DecisionTreeRegressor" title="sklearn.tree.DecisionTreeRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">tree.DecisionTreeRegressor</span></code></a> and all derived ensemble estimators
are now computed on the fly when accessing  the <code class="docutils literal notranslate"><span class="pre">feature_importances_</span></code>
attribute. Setting <code class="docutils literal notranslate"><span class="pre">compute_importances=True</span></code> is no longer required.
By <a class="reference external" href="http://www.montefiore.ulg.ac.be/~glouppe/">Gilles Louppe</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.linear_model.lasso_path.html#sklearn.linear_model.lasso_path" title="sklearn.linear_model.lasso_path"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.lasso_path</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.enet_path.html#sklearn.linear_model.enet_path" title="sklearn.linear_model.enet_path"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.enet_path</span></code></a> can return its results in the same
format as that of <a class="reference internal" href="../modules/generated/sklearn.linear_model.lars_path.html#sklearn.linear_model.lars_path" title="sklearn.linear_model.lars_path"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.lars_path</span></code></a>. This is done by
setting the <code class="docutils literal notranslate"><span class="pre">return_models</span></code> parameter to <code class="docutils literal notranslate"><span class="pre">False</span></code>. By
<a class="reference external" href="https://github.com/jaquesgrobler">Jaques Grobler</a> and <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a></p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.IterGrid</span></code> was renamed to
<code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.ParameterGrid</span></code>.</p></li>
<li><p>Fixed bug in <code class="xref py py-class docutils literal notranslate"><span class="pre">KFold</span></code> causing imperfect class balance in some
cases. By <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a> and Tadej Janež.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.neighbors.BallTree.html#sklearn.neighbors.BallTree" title="sklearn.neighbors.BallTree"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.neighbors.BallTree</span></code></a> has been refactored, and a
<a class="reference internal" href="../modules/generated/sklearn.neighbors.KDTree.html#sklearn.neighbors.KDTree" title="sklearn.neighbors.KDTree"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.neighbors.KDTree</span></code></a> has been
added which shares the same interface.  The Ball Tree now works with
a wide variety of distance metrics.  Both classes have many new
methods, including single-tree and dual-tree queries, breadth-first
and depth-first searching, and more advanced queries such as
kernel density estimation and 2-point correlation functions.
By <a class="reference external" href="https://staff.washington.edu/jakevdp/">Jake Vanderplas</a></p></li>
<li><p>Support for scipy.spatial.cKDTree within neighbors queries has been
removed, and the functionality replaced with the new <code class="xref py py-class docutils literal notranslate"><span class="pre">KDTree</span></code>
class.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.neighbors.KernelDensity.html#sklearn.neighbors.KernelDensity" title="sklearn.neighbors.KernelDensity"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.neighbors.KernelDensity</span></code></a> has been added, which performs
efficient kernel density estimation with a variety of kernels.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.decomposition.KernelPCA.html#sklearn.decomposition.KernelPCA" title="sklearn.decomposition.KernelPCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.decomposition.KernelPCA</span></code></a> now always returns output with
<code class="docutils literal notranslate"><span class="pre">n_components</span></code> components, unless the new parameter <code class="docutils literal notranslate"><span class="pre">remove_zero_eig</span></code>
is set to <code class="docutils literal notranslate"><span class="pre">True</span></code>. This new behavior is consistent with the way
kernel PCA was always documented; previously, the removal of components
with zero eigenvalues was tacitly performed on all data.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">gcv_mode=&quot;auto&quot;</span></code> no longer tries to perform SVD on a densified
sparse matrix in <a class="reference internal" href="../modules/generated/sklearn.linear_model.RidgeCV.html#sklearn.linear_model.RidgeCV" title="sklearn.linear_model.RidgeCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.linear_model.RidgeCV</span></code></a>.</p></li>
<li><p>Sparse matrix support in <code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.decomposition.RandomizedPCA</span></code>
is now deprecated in favor of the new <code class="docutils literal notranslate"><span class="pre">TruncatedSVD</span></code>.</p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.KFold</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.StratifiedKFold</span></code> now enforce <code class="docutils literal notranslate"><span class="pre">n_folds</span> <span class="pre">&gt;=</span> <span class="pre">2</span></code>
otherwise a <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> is raised. By <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.datasets.load_files.html#sklearn.datasets.load_files" title="sklearn.datasets.load_files"><code class="xref py py-func docutils literal notranslate"><span class="pre">datasets.load_files</span></code></a>’s <code class="docutils literal notranslate"><span class="pre">charset</span></code> and <code class="docutils literal notranslate"><span class="pre">charset_errors</span></code>
parameters were renamed <code class="docutils literal notranslate"><span class="pre">encoding</span></code> and <code class="docutils literal notranslate"><span class="pre">decode_errors</span></code>.</p></li>
<li><p>Attribute <code class="docutils literal notranslate"><span class="pre">oob_score_</span></code> in <a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingRegressor.html#sklearn.ensemble.GradientBoostingRegressor" title="sklearn.ensemble.GradientBoostingRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.ensemble.GradientBoostingRegressor</span></code></a>
and <a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingClassifier.html#sklearn.ensemble.GradientBoostingClassifier" title="sklearn.ensemble.GradientBoostingClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.ensemble.GradientBoostingClassifier</span></code></a>
is deprecated and has been replaced by <code class="docutils literal notranslate"><span class="pre">oob_improvement_</span></code> .</p></li>
<li><p>Attributes in OrthogonalMatchingPursuit have been deprecated
(copy_X, Gram, …) and precompute_gram renamed precompute
for consistency. See #2224.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.preprocessing.StandardScaler.html#sklearn.preprocessing.StandardScaler" title="sklearn.preprocessing.StandardScaler"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.preprocessing.StandardScaler</span></code></a> now converts integer input
to float, and raises a warning. Previously it rounded for dense integer
input.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.multiclass.OneVsRestClassifier.html#sklearn.multiclass.OneVsRestClassifier" title="sklearn.multiclass.OneVsRestClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.multiclass.OneVsRestClassifier</span></code></a> now has a
<code class="docutils literal notranslate"><span class="pre">decision_function</span></code> method. This will return the distance of each
sample from the decision boundary for each class, as long as the
underlying estimators implement the <code class="docutils literal notranslate"><span class="pre">decision_function</span></code> method.
By <a class="reference external" href="https://kastnerkyle.github.io/">Kyle Kastner</a>.</p></li>
<li><p>Better input validation, warning on unexpected shapes for y.</p></li>
</ul>
</div>
<div class="section" id="people">
<h2>People<a class="headerlink" href="#people" title="Permalink to this headline">¶</a></h2>
<p>List of contributors for release 0.14 by number of commits.</p>
<blockquote>
<div><ul class="simple">
<li><p>277  Gilles Louppe</p></li>
<li><p>245  Lars Buitinck</p></li>
<li><p>187  Andreas Mueller</p></li>
<li><p>124  Arnaud Joly</p></li>
<li><p>112  Jaques Grobler</p></li>
<li><p>109  Gael Varoquaux</p></li>
<li><p>107  Olivier Grisel</p></li>
<li><p>102  Noel Dawe</p></li>
<li><p>99  Kemal Eren</p></li>
<li><p>79  Joel Nothman</p></li>
<li><p>75  Jake VanderPlas</p></li>
<li><p>73  Nelle Varoquaux</p></li>
<li><p>71  Vlad Niculae</p></li>
<li><p>65  Peter Prettenhofer</p></li>
<li><p>64  Alexandre Gramfort</p></li>
<li><p>54  Mathieu Blondel</p></li>
<li><p>38  Nicolas Trésegnie</p></li>
<li><p>35  eustache</p></li>
<li><p>27  Denis Engemann</p></li>
<li><p>25  Yann N. Dauphin</p></li>
<li><p>19  Justin Vincent</p></li>
<li><p>17  Robert Layton</p></li>
<li><p>15  Doug Coleman</p></li>
<li><p>14  Michael Eickenberg</p></li>
<li><p>13  Robert Marchman</p></li>
<li><p>11  Fabian Pedregosa</p></li>
<li><p>11  Philippe Gervais</p></li>
<li><p>10  Jim Holmström</p></li>
<li><p>10  Tadej Janež</p></li>
<li><p>10  syhw</p></li>
<li><p>9  Mikhail Korobov</p></li>
<li><p>9  Steven De Gryze</p></li>
<li><p>8  sergeyf</p></li>
<li><p>7  Ben Root</p></li>
<li><p>7  Hrishikesh Huilgolkar</p></li>
<li><p>6  Kyle Kastner</p></li>
<li><p>6  Martin Luessi</p></li>
<li><p>6  Rob Speer</p></li>
<li><p>5  Federico Vaggi</p></li>
<li><p>5  Raul Garreta</p></li>
<li><p>5  Rob Zinkov</p></li>
<li><p>4  Ken Geis</p></li>
<li><p>3  A. Flaxman</p></li>
<li><p>3  Denton Cockburn</p></li>
<li><p>3  Dougal Sutherland</p></li>
<li><p>3  Ian Ozsvald</p></li>
<li><p>3  Johannes Schönberger</p></li>
<li><p>3  Robert McGibbon</p></li>
<li><p>3  Roman Sinayev</p></li>
<li><p>3  Szabo Roland</p></li>
<li><p>2  Diego Molla</p></li>
<li><p>2  Imran Haque</p></li>
<li><p>2  Jochen Wersdörfer</p></li>
<li><p>2  Sergey Karayev</p></li>
<li><p>2  Yannick Schwartz</p></li>
<li><p>2  jamestwebber</p></li>
<li><p>1  Abhijeet Kolhe</p></li>
<li><p>1  Alexander Fabisch</p></li>
<li><p>1  Bastiaan van den Berg</p></li>
<li><p>1  Benjamin Peterson</p></li>
<li><p>1  Daniel Velkov</p></li>
<li><p>1  Fazlul Shahriar</p></li>
<li><p>1  Felix Brockherde</p></li>
<li><p>1  Félix-Antoine Fortin</p></li>
<li><p>1  Harikrishnan S</p></li>
<li><p>1  Jack Hale</p></li>
<li><p>1  JakeMick</p></li>
<li><p>1  James McDermott</p></li>
<li><p>1  John Benediktsson</p></li>
<li><p>1  John Zwinck</p></li>
<li><p>1  Joshua Vredevoogd</p></li>
<li><p>1  Justin Pati</p></li>
<li><p>1  Kevin Hughes</p></li>
<li><p>1  Kyle Kelley</p></li>
<li><p>1  Matthias Ekman</p></li>
<li><p>1  Miroslav Shubernetskiy</p></li>
<li><p>1  Naoki Orii</p></li>
<li><p>1  Norbert Crombach</p></li>
<li><p>1  Rafael Cunha de Almeida</p></li>
<li><p>1  Rolando Espinoza La fuente</p></li>
<li><p>1  Seamus Abshere</p></li>
<li><p>1  Sergey Feldman</p></li>
<li><p>1  Sergio Medina</p></li>
<li><p>1  Stefano Lattarini</p></li>
<li><p>1  Steve Koch</p></li>
<li><p>1  Sturla Molden</p></li>
<li><p>1  Thomas Jarosch</p></li>
<li><p>1  Yaroslav Halchenko</p></li>
</ul>
</div></blockquote>
</div>
</div>


      </div>
    <div class="container">
      <footer class="sk-content-footer">
            &copy; 2007 - 2019, scikit-learn developers (BSD License).
          <a href="../_sources/whats_new/v0.14.rst.txt" rel="nofollow">Show this page source</a>
      </footer>
    </div>
  </div>
</div>
<script src="../_static/js/vendor/bootstrap.min.js"></script>

<script>
    window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
    ga('create', 'UA-22606712-2', 'auto');
    ga('set', 'anonymizeIp', true);
    ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>


<script>
$(document).ready(function() {
    /* Add a [>>>] button on the top-right corner of code samples to hide
     * the >>> and ... prompts and the output and thus make the code
     * copyable. */
    var div = $('.highlight-python .highlight,' +
                '.highlight-python3 .highlight,' +
                '.highlight-pycon .highlight,' +
		'.highlight-default .highlight')
    var pre = div.find('pre');

    // get the styles from the current theme
    pre.parent().parent().css('position', 'relative');
    var hide_text = 'Hide prompts and outputs';
    var show_text = 'Show prompts and outputs';

    // create and add the button to all the code blocks that contain >>>
    div.each(function(index) {
        var jthis = $(this);
        if (jthis.find('.gp').length > 0) {
            var button = $('<span class="copybutton">&gt;&gt;&gt;</span>');
            button.attr('title', hide_text);
            button.data('hidden', 'false');
            jthis.prepend(button);
        }
        // tracebacks (.gt) contain bare text elements that need to be
        // wrapped in a span to work with .nextUntil() (see later)
        jthis.find('pre:has(.gt)').contents().filter(function() {
            return ((this.nodeType == 3) && (this.data.trim().length > 0));
        }).wrap('<span>');
    });

    // define the behavior of the button when it's clicked
    $('.copybutton').click(function(e){
        e.preventDefault();
        var button = $(this);
        if (button.data('hidden') === 'false') {
            // hide the code output
            button.parent().find('.go, .gp, .gt').hide();
            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden');
            button.css('text-decoration', 'line-through');
            button.attr('title', show_text);
            button.data('hidden', 'true');
        } else {
            // show the code output
            button.parent().find('.go, .gp, .gt').show();
            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible');
            button.css('text-decoration', 'none');
            button.attr('title', hide_text);
            button.data('hidden', 'false');
        }
    });

	/*** Add permalink buttons next to glossary terms ***/
	$('dl.glossary > dt[id]').append(function() {
		return ('<a class="headerlink" href="#' +
			    this.getAttribute('id') +
			    '" title="Permalink to this term">¶</a>');
	});
  /*** Hide navbar when scrolling down ***/
  // Returns true when headerlink target matches hash in url
  (function() {
    hashTargetOnTop = function() {
        var hash = window.location.hash;
        if ( hash.length < 2 ) { return false; }

        var target = document.getElementById( hash.slice(1) );
        if ( target === null ) { return false; }

        var top = target.getBoundingClientRect().top;
        return (top < 2) && (top > -2);
    };

    // Hide navbar on load if hash target is on top
    var navBar = document.getElementById("navbar");
    var navBarToggler = document.getElementById("sk-navbar-toggler");
    var navBarHeightHidden = "-" + navBar.getBoundingClientRect().height + "px";
    var $window = $(window);

    hideNavBar = function() {
        navBar.style.top = navBarHeightHidden;
    };

    showNavBar = function() {
        navBar.style.top = "0";
    }

    if (hashTargetOnTop()) {
        hideNavBar()
    }

    var prevScrollpos = window.pageYOffset;
    hideOnScroll = function(lastScrollTop) {
        if (($window.width() < 768) && (navBarToggler.getAttribute("aria-expanded") === 'true')) {
            return;
        }
        if (lastScrollTop > 2 && (prevScrollpos <= lastScrollTop) || hashTargetOnTop()){
            hideNavBar()
        } else {
            showNavBar()
        }
        prevScrollpos = lastScrollTop;
    };

    /*** high preformance scroll event listener***/
    var raf = window.requestAnimationFrame ||
        window.webkitRequestAnimationFrame ||
        window.mozRequestAnimationFrame ||
        window.msRequestAnimationFrame ||
        window.oRequestAnimationFrame;
    var lastScrollTop = $window.scrollTop();

    if (raf) {
        loop();
    }

    function loop() {
        var scrollTop = $window.scrollTop();
        if (lastScrollTop === scrollTop) {
            raf(loop);
            return;
        } else {
            lastScrollTop = scrollTop;
            hideOnScroll(lastScrollTop);
            raf(loop);
        }
    }
  })();
});

</script>
    
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
    
</body>
</html>